/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.util.List;
import org.hibernate.Session;
import Modelo.Clases.*;
import java.util.Iterator;

/**
 *
 * @author Home
 */
public class Modelo {
    
    public Modelo(){}
    
    public static void guardar(Object o){
       Session s = HibernateUtil.getSessionFactory().getCurrentSession();
       s.beginTransaction();
       s.save(o);
       s.getTransaction().commit();
   }
    
    public static void actualizar(Object o){
   
       Session s = HibernateUtil.getSessionFactory().getCurrentSession();
       s.beginTransaction();
       s.update(o);
       s.getTransaction().commit();
       
       
       
   }
    
     public static void eliminar(Object o){
   
       Session s = HibernateUtil.getSessionFactory().getCurrentSession();
       
       s.beginTransaction();
       
       s.delete(o);
       
       s.getTransaction().commit();
   }
    
   
    
     public static List<Amigo> consultarAmigos(){
        List<Amigo> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Amigo>)s.createQuery("from Amigo").list();
        s.getTransaction().commit();
        
        return lista;
    }
     
      public static List<Amigo> consultarAmigos(String idAnciano){
        List<Amigo> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Amigo>)s.createQuery("from Amigo where id_Anciano = '"+idAnciano+"'").list();
        s.getTransaction().commit();
        
        return lista;
    }
      public static Amigo consultarAmigoID(String id){
        List<Amigo> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Amigo>)s.createQuery("from Amigo where idAmigo = '"+id+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
        }else{
        return null;
        }
        
        
        
    }
      
      public static Amigo consultarAmigo(String cedula){
        List<Amigo> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Amigo>)s.createQuery("from Amigo where cedula = '"+cedula+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
        }else{
        return null;
        }
        
        
        
    }
     
      public static List<Anciano> consultarAncianos(){
        List<Anciano> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Anciano>)s.createQuery("from Anciano").list();
        s.getTransaction().commit();
        
        return lista;
    }
      
       public static Anciano consultarAnciano(String cedula){
        List<Anciano> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Anciano>)s.createQuery("from Anciano where cedula = '"+cedula+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
        }else{
        return null;
        }
        
        
        
    }
       
       public static Anciano consultarAnciano(Integer id){
        List<Anciano> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Anciano>)s.createQuery("from Anciano where idAnciano = '"+id+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        System.out.println("sio");
            return lista.get(0);
        }else{
            System.out.println("null");
        return null;
            
        }
        
        
        
    }
       
      
       public static List<Familiar> consultarFamiliares(){
        List<Familiar> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Familiar>)s.createQuery("from Familiar").list();
        s.getTransaction().commit();
        
        return lista;
    }
       public static List<Familiar> consultarFamiliares(String idAnciano){
        List<Familiar> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Familiar>)s.createQuery("from Familiar where id_Anciano = '"+idAnciano+"'").list();
        s.getTransaction().commit();
        
        return lista;
    }
       
       public static Familiar consultarFamiliar(String cedula){
        List<Familiar> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Familiar>)s.createQuery("from Familiar where cedula = '"+cedula+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
            
        }else{
        return null;
        }
       }
       
        public static Familiar consultarFamiliar(Integer id){
        List<Familiar> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Familiar>)s.createQuery("from Familiar where idFamiliar = '"+id+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
            
        }else{
        return null;
        }
       }
       
       
       public static List<Administrador> consultarAdministradores(){
        List<Administrador> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Administrador>)s.createQuery("from Administrador").list();
        s.getTransaction().commit();
        
        return lista;
    }
       
       public static Administrador consultarAdministrador(String cedula){
        List<Administrador> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Administrador>)s.createQuery("from Administrador where cedula = '"+cedula+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
            
        }else{
        return null;
        }
       }
       public static Administrador consultarAdministrador(Integer id){
        List<Administrador> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Administrador>)s.createQuery("from Administrador where idAdministrador = '"+id+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
            
        }else{
        return null;
        }
       }
       
       public static List<VideoConferencia> consultarVideoConferencias(){
        List<VideoConferencia> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<VideoConferencia>)s.createQuery("from VideoConferencia").list();
        s.getTransaction().commit();
        
        return lista;
    }
       
       
       public static VideoConferencia consultarVideoConferencia(Integer id){
        List<VideoConferencia> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<VideoConferencia>)s.createQuery("from VideoConferencia where idVideoConferencia = '"+id+"'").list();
        s.getTransaction().commit();
        
        if(lista.size() == 1){
        
            return lista.get(0);
        }else{
        return null;
        }
        
        
        
    }
       
       
       public static List<Administrador> consultarAdministradoresCoincidencias(String c){
       
       
           List<Administrador> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Administrador>)s.createQuery("from Administrador where cedula like '"+c+"%' or apellido like '"+c+"%' or nombre  like  '"+ c +"%'").list();
        //lista = (List<Anciano>)s.createQuery("from Anciano").list();
        s.getTransaction().commit();
        
        return lista;
       }
       
       
       public static List<Amigo> consultarAmigosCoincidencias(String c){
       
       
           List<Amigo> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Amigo>)s.createQuery("from Amigo where cedula like '"+c+"%' or apellido like '"+c+"%' or nombre  like  '"+ c +"%'").list();
        //lista = (List<Anciano>)s.createQuery("from Anciano").list();
        s.getTransaction().commit();
        
        return lista;
       }
       
       public static List<Anciano> consultarAncianosCoincidencias(String c){
       
       
           List<Anciano> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Anciano>)s.createQuery("from Anciano where cedula like '"+c+"%' or apellido like '"+c+"%' or nombre  like  '"+ c +"%'").list();
        //lista = (List<Anciano>)s.createQuery("from Anciano").list();
        s.getTransaction().commit();
        
        return lista;
       }
       
        public static List<Familiar> consultarFamiliaresCoincidencias(String c){
       
       
           List<Familiar> lista;
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        lista = (List<Familiar>)s.createQuery("from Familiar where cedula like '"+c+"%' or apellido like '"+c+"%' or nombre  like  '"+ c +"%'").list();
        //lista = (List<Anciano>)s.createQuery("from Anciano").list();
        s.getTransaction().commit();
        
        return lista;
       }
       
     
       
}
